package com.example.demo.util;

import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.example.demo.core.DefineConstant;

public class CookieUtil {
	/**
	 * @param request
	 * @return
	 * @创建时间 2020年6月22日
	 * @创建人 许子文
	 * @功能描述: 根据cookie名称获取cookie的value
	 */
	public static String getCookieValue(HttpServletRequest request,String cookieName) {
		String cookieValue = null;
		
		if(EmptyUtil.isEmpty(cookieName)) {
			return cookieValue;
		}
		
		Cookie[] cookies = request.getCookies();
		
		if(null!=cookies) {
			for (Cookie cookie : cookies) {
				if(cookieName.equals(cookie.getName())) {
					cookieValue = cookie.getValue();
					break;
				}
			}
		}
		
		return cookieValue;
	}
	
	/**
	 * @param request
	 * @return
	 * @创建时间 2020年6月22日
	 * @创建人 许子文
	 * @功能描述: 从cookie中获取token
	 */
	public static String getCookieToken(HttpServletRequest request) {
		return getCookieValue(request, DefineConstant.AUTH_TOKEN_NAME);
	}
	
	/**
	 * @param request
	 * @param response
	 * @param cookieName
	 * @创建时间 2020年6月23日
	 * @创建人 许子文
	 * @功能描述: 清除token
	 */
	public static void removeCookie(HttpServletResponse response,String cookieName) {
		Cookie cookie = new Cookie(cookieName, null);
		cookie.setMaxAge(0);
		cookie.setPath("/");
		response.addCookie(cookie);
	}
}
